/** 
 * Copyright (C), 2010-2012, AIYOU Software Co.,Ltd. ALL RIGHTS RESERVED. 
 * File name:UserInviteServiceImp.java
 * Version:1.0
 * Date:Dec 10, 2011
 * Description: 
 * author:whh 
 */
package com.tietiao.service.userinvite;


import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.tietiao.common.constants.LogConstants;
import com.tietiao.common.util.DateFormater;
import com.tietiao.common.util.PropertyUtil;
import com.tietiao.dao.UserInviteMapper;
import com.tietiao.dao.model.UserInvite;
import com.tietiao.dao.model.UserInviteCriteria;
import com.tietiao.service.syslog.SysLogService;
@Service
public class UserInviteServiceImp implements UserInviteService {
	@Resource
	private UserInviteMapper userInviteMapper;
	@Resource
	private SysLogService sysLogService;
	/* (non-Javadoc)
	 * @see com.tietiao.service.userinvite.UserInviteService#getUserInviteByCode(java.lang.String)
	 */
	@Override
	public UserInvite getUserInviteByCode(String inviteCode) {
		UserInviteCriteria userInviteCriteria = new UserInviteCriteria();
		UserInviteCriteria.Criteria criteria = userInviteCriteria.createCriteria();

		criteria.andInviteCodeEqualTo(inviteCode);
		int maxOutTime = Integer.parseInt(PropertyUtil.getValue("SYS_INVITE_OUT_TIME"));
		criteria.andInviteTimeLessThan(DateFormater.addDayOnDate(new Date(), maxOutTime));
		criteria.andIsInvaildEqualTo(0);
		List<UserInvite> list = userInviteMapper.selectByExample(userInviteCriteria);
		if(list==null||list.size()==0){
			return null;
		}else{
			return list.get(0);
		}
	}

	/* (non-Javadoc)
	 * @see com.tietiao.service.userinvite.UserInviteService#insertUserInvite(com.tietiao.dao.model.UserInvite)
	 */
	@Override
	public int insertUserInvite(UserInvite userInvite) {
		sysLogService.insertSysLog(LogConstants.OP_TYPE_INSERT, "邀请码表", "邀请码:"+userInvite.getInviteCode());
		return userInviteMapper.insert(userInvite);
	}

	/* (non-Javadoc)
	 * @see com.tietiao.service.userinvite.UserInviteService#updateUserInvite(com.tietiao.dao.model.UserInvite)
	 */
	@Override
	public int updateUserInvite(UserInvite userInvite) {
		sysLogService.insertSysLog(LogConstants.OP_TYPE_UPDATE, "邀请码表", "邀请码:"+userInvite.getInviteCode());
		return userInviteMapper.updateByPrimaryKey(userInvite);
	}

}
